/*public class test1 {
             //public修饰的类名一定与文件名一样，并且只有一个（除非把public删掉）
             //一个java文件中只有一个和当前文件名一样的类(被public修饰)

    //mai-->enter
             public static void main(String[] args) {

                 //sout-->enter
                 System.out.println("hello");
             }
}*/
//行注释 ctrl+/
//块注释 ctrl+shift+/

//导包【include】
import java.util.Random;
import java.util.Scanner;

public class j1 {

   /*判断闰年
     整除4且不整除100(普通) 或 整除400(实际)
   public static void main(String[] args) {
        int year=2000;
        if(year%100==0){
            if(year%400==0){
                System.out.println("是闰年");
            }else{
                System.out.println("不是闰年");
            }
        }
        else {
            if(year%4==0){
                System.out.println("是闰年");
            }else{
                System.out.println("不是闰年");
            }
        }
    }*/


/*打印1~10的数字
 public static void main(String[] args) {
        int  num=1;
        while(num<=10){
            System.out.println(num);
            num++;
        }
    }*/


/*    死循环
    while(true){}*/


    /*打印出1~100的和
    public static void main(String[] args) {
        int num=1;
        int ret=0;
        while(num<=100){
            ret+=num;
            num++;
        }
        System.out.println(ret);
    }*/

   /* //计算5的阶乘
    public static void main(String[] args) {
        int num=1;
        int ret=1;
        while(num<=5){
            ret*=num;
            num++;
        }
        System.out.println(ret);
    }

*/
    //求阶乘和

   /* public static void main(String[] args) {
        int k=1;
        int sum=0;
        while(k<=5){
            int n=1;
            int ret=1;
            while(n<=k){
                ret*=n;
                n++;
            }
            k++;
            sum+=ret;
        }
        System.out.println(sum);
    }*/

   /* 找出100~200中第一个3的倍数
    public static void main(String[] args) {
        int i=100;
        while(i<=200){
            if(i%3==0){
                System.out.println(i);
                break;
            }
        }
    }*/

    //continue跳过本次循环进入下次

    /*public static void main(String[] args) {
        int n=1;
        while(n<=5){
            if(n==2){
                continue;
            }
            System.out.println(n);//1-->死循环
            n++;
        }
    }*/

    //正确写法
   /* public static void main(String[] args) {
        int n=1;
        while(n<=5){
            if(n==2){
                n++;
                continue;
            }
            System.out.println(n);
            n++;
        }
    }*/

    //求出100~200之间既能被3整除又能被4整除的数字
    /*public static void main(String[] args) {
        int i=100;
        while(i<=200){
            if(i%12!=0){
                continue;
            }
            System.out.println(i);
            i++;
        }
    }
*/

    /*public static void main(String[] args) {
        int sum=0;
        for (int i = 0; i <=5; i++) {
            int ret=1;
            for (int j = 0; j <=i; j++) {
                ret*=i;
            }
            sum+=ret;
        }
        System.out.println(sum);
    }*/

    /*单个数据的读入
    public static void main(String[] args) {
        Scanner scan=new Scanner(System.in);//定义一个变量scan

        System.out.println("请输入你的年龄：");
        int age=scan.nextInt();//输入一个int类型的整数
        System.out.println("年龄："+age);

        scan.nextLine();//读走回车

        System.out.println("请输入你的姓名：");
        String name=scan.nextLine();//nextline读入一行,遇到空格结束
        System.out.println("姓名："+name);

        System.out.println("请输入你的工资：");
        float salary=scan.nextFloat();
        System.out.println("工资："+salary);

        scan.close();//可以认为scan是一个资源
    }*/

    /*多组数据的读入-->通过Scanner循环读取N个数字，并求取其平均值
    public static void main(String[] args) {
        Scanner scan=new Scanner(System.in);
        while (scan.hasNextInt()){ //判断是否有下一个整数
            int age=scan.nextInt();
            System.out.println(age);//读一个就打印出来一个
        }
    }*/

    /*-->通过Scanner循环读取N个数字，并求取其平均值
         当循环输入多个数据时，使用ctrl+d来结束输入
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int sum=0;
        int num=0;
        while(sc.hasNextInt()){//判断下一行是否有数据
            int tmp=sc.nextInt();
            sum+=tmp;
            num++;
        }
        System.out.println("sum="+sum);
        System.out.println("avg="+sum/num);
        sc.close();
    }
*/


    //猜数字
   /* public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        //一直输入直到输入错误-->死循环
        Random random=new Random();//生成随机数的工具
        int randNum = random.nextInt(100);//生成[0,100)的随机数
        //生成50~100之间的随机数 random.nextInt(50)+50
        while(true){
            System.out.println("请输入你要猜的数字：");
            int num=scanner.nextInt();
            if(num<randNum){
                System.out.println("猜小了！");
            } else if (num==randNum) {
                System.out.println("猜对了！");
                break;
            }else{
                System.out.println("猜大了！");
            }
        }
    }*/



    //习题
//1.根据年龄,来打印出当前年龄的人是少年(低于18),青年(19-28),中年(29-55),老年(56以上)
/*public static void main(String[] args) {
    Scanner scanner=new Scanner(System.in);
    int age= scanner.nextInt();
    if(age<18){
        System.out.println("少年");
    } else if (age<28&&age>19) {
        System.out.println("青年");
    } else if (age<55&&age>29) {
        System.out.println("中年");
    }else{
        System.out.println("老年");
    }
}*/

//2.判定一个数字是否是素数
/*public static void main(String[] args) {
    int n=9;
    int i=2;//i定义为全局变量，而不是初始化在for循环起始点处，因为后面要用于if判断该数是否为素数
    for (; i <=Math.sqrt(n); i++) {
        if(n%i==0){
            break;
        }
    }
    if(i>Math.sqrt(n)){
        System.out.println(n+"是素数！");
    }
}*/
//3.打印1-100之间所有的素数
/*public static void main(String[] args) {
    for (int n = 2; n <=100; n++) {//1既不是素数也不是合数
        int i=2;
        for (; i <=Math.sqrt(n); i++) {
            if(n%i==0){
                break;
            }
        }
        if(i>Math.sqrt(n)){
            System.out.println(n+"是素数！");
        }
    }
    }

}*/
//4.输出1000-2000之间所有闰年
/*public static void main(String[] args) {
    Scanner scanner=new Scanner(System.in);
    int year=1000;
    for(year=1000;year<=2000;year++){
        if((year%4==0&&year%100!=0)||(year%400==0)) {
            System.out.print(year);
        }
    }
}*/

    /*public static void main(String[] args) {
    Scanner scanner=new Scanner(System.in);
    int year=1000;
    while(year<=2000){
        if(year%100==0){
            if(year%400==0){
                System.out.println(year);
            }
            else{
                break;
            }
        } else {
            if(year%4==0){
                System.out.println(year);
            }else{

            }
        }
    }
    }*/


//5.输出乘法口诀表
/*public static void main(String[] args) {
    for(int i=1;i<=9;i++){
        for (int j = 1; j <=i; j++) {
            System.out.print(j+"*"+i+"="+i*j+" ");
        }
        System.out.println();
    }
}*/
//6.求两个正整数的最大公约数
/*public static void main(String[] args) {
    Scanner scanner=new Scanner(System.in);
    System.out.print("请输入两个数字：");
    int m=scanner.nextByte();
    int n=scanner.nextInt();
    int r=m%n;

    while(r!=0){
        m=n;
        n=r;
        r=m%n;
    }
    System.out.println("最大公约数："+n);
}*/


   /* public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入两个数字：");
        int m=scanner.nextByte();
        int n=scanner.nextInt();
        int r=m%n;

        while(r!=0){
            m=n;
            n=r;
            r=m%n;
        }
        System.out.println("最大公约数："+n);
    }*/
//7.自幂 1位->独身 3位->水仙花 4->四叶玫瑰 5->五角星 6->六合 7->北斗星 8->八仙 9->九九重阳 10->十全十美
    //求6位之内的自幂数
/*public static void main(String[] args) {
    for (int i = 0; i <=999999 ; i++) {
    int count=0;//记录位数
        int tmp=i;
        while(tmp!=0){
            tmp/=10;
            count++;
        }
        tmp=i;
        int sum=0;
        while(tmp!=0){
            sum+=Math.pow(tmp%10,count);
            tmp/=10;
        }
        if(sum==i){
            System.out.println(i);
        }
    }
}*/
//8.写一个函数返回参数二进制中1的个数 比如:150000111 14个1
/*public static void main(String[] args) {
    Scanner scanner=new Scanner(System.in);
    int n=scanner.nextInt();
    int count=0;
    while(n!=0){
        if((n&1)!=0){
            count++;
        }
        n=n>>>1;
    }
    System.out.println(count);
}*/
/*public static void main(String[] args) {
    int n=15;
    int count=0;
    while(n!=0){
        n=n&(n-1);//每 & 一次就减少一个1
        count++;
    }
    System.out.println(count);//-1-->32
}*/

//9.获取一个数二进制序列中所有的偶数位和奇数位，分别输出二进制序列
    /*1. 提取所有的奇数位，如果该位是1，输出1，是0则输出0
    2. 以同样的方式提取偶数位置,
    检测num中某一位是0还是1的方式:<1>将num向右移动i位 <2> 将移完位之后的结果与1按位与，如果：结果是0，则第i个比特位是0;结果是非0，则第i个比特位是1*/
/*public static void main(String[] args) {
    System.out.println("请输入一个整数: ");
    Scanner scan = new Scanner(System.in);
    int n = scan.nextInt();
    //00000000 00000000 00000000 00000110
    //下标：31 - 0
    //从左到右
    //奇数：0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
    //偶数：0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
    //从右到左
    //奇数：0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    //偶数：1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    //打印奇数
    System.out.println("奇数是：");
    for(int i = 31; i >= 1; i -= 2){
        System.out.print(((n>>i)&1) + " ");
    }
    System.out.println();

    //打印偶数
    System.out.println("偶数是：");
    for(int i = 30; i >= 0; i -= 2){
        System.out.print(((n>>i)&1) + " ");
    }

}*/

    //作业1 编写程序数一下 1到 100 的所有整数中出现多少个数字9
    //99个位和十位上都是9，所以两个if语句都执行
    /*public static void main(String[] args) {
        int count=0;
        for (int i = 1; i <=100 ; i++) {
            if(i%10==9){//判断个位上9的个数
                count++;
            }
            if (i/10==9){//判断十位上9的个数
                count++;
            }
        }
        System.out.println(count);//20
    }*/

    //作业2 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值
    /*public static void main(String[] args) {

        double sum = 0;
        int flg = 1;
        for (int i = 1; i <= 100; i++) {
            sum += 1.0/i * flg;
            flg = -flg;
        }
        System.out.println(sum);
    }*/

    //作业3 打印图案
    //对称图形可以用坐标的思想来解决，假设图形被放在坐标方格中
   /* public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int n = scanner.nextInt();
            for (int i = 0; i < n; i++) {
                for (int j = 0; j < n; j++) {
                   if (i == j || (i + j) == n-1) {
                       System.out.print("*");
                   } else {
                       System.out.print(" ");
                   }
                }
            System.out.println(" ");
            }
        }
    }*/


    //作业4 输出一个整数的每一位，如：123的每一位是3，2，1
   /* public static void main(String[] args) {
        int n=123;
        while(n!=0){
            System.out.println(n%10);
            n/=10;
        }

    }
*/

   /*作业5 编写代码模拟三次密码输入的场景。
          最多能输入三次密码，密码正确，提示“登录成功”
          密码错误， 可以重新输入，最多输入三次。三次均错，则提示退出程序*/

   /* public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int count = 3;
        while (count != 0) {
            System.out.println("请输入你的密码：");
            String password = scanner.nextLine();

            if(password.equals("123")) {
                System.out.println("登录成功！");
                break;
            }else {
                count--;
                System.out.println("你还有"+count+" 次机会！");
            }
        }
    }*/





}


















